package Java8实战._2_Stream_使用流._6_数值流;

import Java8实战._2_Stream_使用流.Dish;

import java.util.Arrays;
import java.util.List;

public class _1_原始类型流特化_1_映射到数值流 {

    public static void main(String[] args) {

        List<Dish> menu = Arrays.asList(
                new Dish("pork", false, 800, Dish.Type.MEAT),
                new Dish("beef", false, 700, Dish.Type.MEAT),
                new Dish("chicken", false, 400, Dish.Type.MEAT),
                new Dish("french fries", true, 530, Dish.Type.OTHER),
                new Dish("rice", true, 350, Dish.Type.OTHER),
                new Dish("season fruit", true, 120, Dish.Type.OTHER),
                new Dish("pizza", true, 550, Dish.Type.OTHER),
                new Dish("prawns", false, 300, Dish.Type.FISH),
                new Dish("salmon", false, 450, Dish.Type.FISH)
        );

        /**
         * 卡路里求和
         */
        menu.stream()
                .mapToInt(Dish::getCalories)
                .reduce((a,b) -> a + b)
                .ifPresent(System.out::println);

        int sum = menu.stream()
                .mapToInt(Dish::getCalories)
                .sum();
        System.out.println(sum);
    }
}
